﻿#region License
// /* **************************************************************
// * Copyright (C) intex Consulting GmbH - All Rights Reserved    *
// *--------------------------------------------------------------*
// * Unauthorized copying of this file, via any medium is         *
// * strictly prohibited                                          *
// *--------------------------------------------------------------*
// * Proprietary and confidential                                 *
// *--------------------------------------------------------------*
// * Dissasembling/modifications strictly prohibited!             *
// ***************************************************************/
#endregion

using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;

namespace ComHlp.ContentClasses.VirtualControls.Gauges
{
    [SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global")]
    public class ItxGauge
    {
        /// <summary> type of gauge
        /// Typ		9(01) 1-, 2- oder 3-fach. Bisher nur 1 realisiert.</summary>
        public string Type { get; set; }

        /// <summary> size of display gauge
        /// 9(03) Größe in % (100=360°, 50=180°) Beispiel in EI91 = 60%
        /// </summary>
        public int GaugeCircleSize { get; set; }

        /// <summary> 3x9(03) für die Default-Farbe. Normalerweise ist alles rot, grün oder blau: aber bei 
        /// „undefiniert“ wird es in dieser Farbe dargestellt(siehe EI91 mit Vorgabe IT). 
        /// </summary>
        public ItxColor UndefineColor { get; set; }

        /// <summary> 9(01)v9(01) für die Größe der Schrift </summary>
        public double FontFactor { get; set; }

        /// <summary> Name-RGB	3x9(03) </summary>
        public ItxColor FontColor { get; set; }

        /// <summary> MText-Faktor	9(01)v9(01) für die Größe der Mittel-Schrift </summary>
        public double DescFactor { get; set; }

        /// <summary> MText-RGB	3x9(03) Text-Farbe </summary>
        public ItxColor DescRgb { get; set; }

        /// <summary> Mittelpunkt-X	9(04) Mittelpunkt in Pseudopixeln (1 Spalte = 60) </summary>
        public int CenterX { get; set; }

        /// <summary> Mittelpunkt-Y	9(04) Mittelpunkt in Pseudopixeln (1 Zeile = 180)</summary>
        public int CenterY { get; set; }

        /// <summary> Radius		9(04) Radius außen in Pseudopixeln (1 Spalte = 60) </summary>
        public int Radius { get; set; }

        /// <summary> Dicke		9(04) Dicke in Pseudopixeln (1 Spalte = 60) </summary>
        public int Thickness { get; set; }

        /// <summary> 3x
        /// (
        /// Proz		9(03) Tachostand in %
        /// </summary>
        public int Level1Percentage { get; set; }

        /// <summary> RGB		3x9(03) RGB für den Text </summary>
        public ItxColor Level1Rgb { get; set; }

        /// <summary> Faktor		9(01)v9(01) für die Größe der Schrift </summary>
        public double Level1Factor { get; set; }

        public int Level2Percentage { get; set; }
        public ItxColor Level2Rgb { get; set; }
        public double Level2Factor { get; set; }

        public int Level3Percentage { get; set; }
        public ItxColor Level3Rgb { get; set; }
        public double Level3Factor { get; set; }


        /// <summary> Kennung	X(03) = „RGB“  für Farb-Tabelle
        /// Nr		9(01) Tacho-Nummer(1, 2 oder 3)
        /// RGB		3x9(03) RGB
        /// Bis Proz		9(03)
        /// </summary>
        public List<ItxGaugeColor> Colors { get; set; } = new List<ItxGaugeColor>();
        /// <summary> Kennung	X(02) = „TN“ für Text-Name (Text unter dem Tacho)
        /// Textlae		9(02) Textlänge die nun folgt
        /// Text X(xx)
        /// </summary>
        public string TextName { get; set; }

        /// <summary> Kennung	X(02) = „T1“ für Text bei Proz1
        /// Textlae		9(02) Textlänge die nun folgt
        /// Text X(xx)
        /// </summary>
        public string TextPercent1 { get; set; }

        /// <summary> Kennung	X(02) = „T2“ für Text bei Proz2
        /// Textlae		9(02) Textlänge die nun folgt
        /// Text X(xx)
        /// </summary>
        public string TextPercent2 { get; set; }

        /// <summary> Kennung	X(02) = „T3“ für Text bei Proz3
        /// Textlae		9(02) Textlänge die nun folgt
        /// Text        X(xx)
        /// </summary>
        public string TextPercent3 { get; set; }

        /// <summary> Kennung	X(02) = „TM“ für Text in der Mitte
        /// Textlae		9(02) Textlänge die nun folgt
        /// Text        X(xx) (eventuell durch „;;“ in 2 Zeilen aufgeteilt)
        /// </summary>
        public string CenterText { get; set; }

        /// <summary> Kennung	X(02) = „TB“ Bitmap für die Mitte (Zukunft…)
        /// Textlae		9(02) Bitmap-Name der nun folgt
        /// Text        X(xx)
        /// </summary>
        public string CenterBitMap { get; set; }

        /// <summary> Kennung	X(02) = „TK“ für Kreis-Texte
        /// Textlae		9(02) Textlänge die nun folgt
        /// -->Text        X(xx)
        /// Proz		9(03) Textausgabe bei Proz
        /// </summary>
        public string CircleText { get; set; }

        /// <summary> Kennung	X(02) = „TK“ für Kreis-Texte
        /// Textlae		9(02) Textlänge die nun folgt
        /// Text        X(xx)
        /// -->Proz		9(03) Textausgabe bei Proz
        /// </summary>
        public int CircleTextPercent { get; set; }
    }
}